#pragma once


typedef __int64			uint64;
typedef unsigned int	uint32;
typedef unsigned short	uint16;
typedef unsigned char	byte;

typedef __int64			int64;
typedef int				int32;
typedef short			int16;

struct UID
{
	byte value[16];
};

struct UMID
{
	byte value[32];
};

struct Timestamp
{
	byte value[8];
};

struct Rational
{
	int a;
	int b;
};

//#define CODEC_TYPE_UNKNOWN		0x00
//#define CODEC_ID_NONE			0x01

#define YUP_TYPE_DVVIDEO		0x10
#define YUP_TYPE__MJPEG			0x11
#define YUP_TYPE__DVVIDEO		0x12
#define YUP_TYPE__MPEG2VIDEO	0x13
#define YUP_TYPE__MPEG1VIDEO	0x14

#define YUP_TYPE__AUDIO			0x30
#define YUP_TYPE__PCM_S24LE		0x31
#define YUP_TYPE__PCM_S16LE		0x32
#define YUP_TYPE__AC3			0x33

#define YUP_TYPE_DATA			0x50

const int BITRATE_25M  = 25000000;
const int BITRATE_30M  = 30000000;
const int BITRATE_40M  = 40000000;
const int BITRATE_50M  = 50000000;
const int BITRATE_100M = 100000000;

//
const int RAWDV_DVCAM  = 1;	
const int RAWDV_IECDV  = 2;
const int RAWDV_DVCPRO = 3;

//FROM
const int GXF_DEMUX  = 1;
const int QT_DEMUX	   = 2;
const int RAWDV_DEMUX  = 3;
const int MXF_DEMUX	   = 4;
const int S302_DEMUX   = 5;
const int S331_DEMUX   = 6;
const int PS_DEMUX	   = 7;


//CHORMA
const int CHORMA_411   = 1;
const int CHORMA_420   = 2;
const int CHORMA_422   = 3;
const int CHORMA_444   = 4;

//ASPECTRATIO
const int ASPECTRATIO_43	= 1;
const int ASPECTRATIO_169	= 2;

//TV SYSTEM
const int NTSC		   = 1;
const int PAL		   = 2;
const int SECAM		   = 3;

//const int FPS_2997     = 1;
//const int FPS_2997     = 2;
const int FPS_25		= 3;
const int FPS_2997     = 4;
const int FPS_50		= 5;
const int FPS_5994     = 6;
const int FPS_60		= 7;


struct TimeCode
{
	byte			hour;
	byte			minute;
	byte			second;
	byte			frame;
	bool			dropframe;
	byte			roundfps;
};

struct TrackInfo
{
	uint64			id;
	uint64			type;
	byte			from;
	uint32			width;
	uint32  		height;
	Rational		fps;
	byte			frameratecode;
	byte			chorma;
	byte			aspectratio;
	uint32			bitrate;
	uint32			framesize;
	TimeCode		som;
	byte			bcstandard;
	uint32			freq;
	byte			bitcount;
	byte			channelcount;
};
